System and method for selectively bridging and routing data packets between multiple networks

ABSTRACT

A system and method to permit efficient communication between multiple devices having different network protocols and to permit a private network device to conduct a direct PPPoE session without restricting other devices on the private network from using another IP address. In particular, a gateway device is provided that translates and routes data packets between devices of different network protocols by referring to a table of device addresses and physical port information. Advantageously, the gateway device may maintain the table dynamically. An entry is created for a device the first time it sends a packet over the network, and an entry is deleted if a device has not sent a packet for a predetermined time interval. If no entry exists corresponding to a packet&#39;s destination, the packet is sent to all devices on the network. Finally, the gateway device also identifies the ethertype of data packets and routes them accordingly.

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application is related to, and claims the benefit of, U.S.Provisional Patent Application Ser. No. 60/227,722, entitled “System AndMethod for Selectively Bridging and Routing Data Packets BetweenMultiple Networks,” filed Aug. 24, 2000, the subject matter of which ishereby incorporated by reference.

BACKGROUND

[0002] 1. Technical Field

[0003] The present system and method generally relate to electronicnetworks, and more particularly to a system and method for selectivelybridging and routing data packets between multiple networks.

[0004] 2. Description of the Background Art

[0005] Network devices frequently transmit and receive data according tocertain protocols. For example, network devices may communicate witheach other using protocols such as USB, HomePNA, Ethernet, AppleTalk,HomeRF wireless, 802.11b wireless, and the like. However, configuringand managing a network that permits devices that use different protocolsto communicate with each other can be burdensome and expensive.

[0006] Moreover, in some network configurations, multiple networkdevices are coupled to a gateway, which interfaces the multiple networkdevices with a public network, such as the Internet. Commonly, such agateway will have a public, or routable, IP address and will serve as aproxy for the multiple network devices that sit behind the gateway.Pursuant to this configuration, each of the multiple network devices hasa private IP address that is valid only on the private network. It maybe desirable, or necessary, in some instances, however for one or moreof the multiple network devices that reside behind the gateway toconduct a direct PPPoE (Point-to-Point Protocol over Ethernet) sessionover the Internet.

[0007] Accordingly, a need exists for a system and method by whichmultiple devices having different protocols may efficiently communicatewith each other. An additional need exists for a system and method bywhich a private network device can conduct a direct PPPoE session overthe Internet through a gateway device.

SUMMARY OF THE INVENTION

[0008] A system and method are disclosed to permit efficientcommunication between multiple devices having different networkprotocols and to permit a private network device to conduct a directPPPoE session without restricting other devices on the network fromusing another IP address.

[0009] In general, the invention provides a gateway device that couplesmultiple physical networks. These physical networks may include bothprivate networks, such as home networks, and public networks, such asthe Internet. The various devices connected to the physical networks mayeach use different network protocols. The gateway device stores a deviceaddress and physical port information of the various devices and usesthis information to translate and route data packets between the variousdevices. In addition, the gateway device identifies the ethertype ofdata packets and routes them accordingly, which enables a device on aprivate network to conduct a PPPoE session without interfering with theability of another device on the private network to use a different IPaddress.

[0010] According to one embodiment, the gateway device stores the deviceaddress and physical port information as a dynamic look-up table inrandom access memory. The gateway device creates a table entry for eachdevice the first time the device sends a data packet over the networkand deletes the entry if the device does not send a data packet for apredetermined length of time.

[0011] Then, as the gateway device receives data packets, it refers tothe look-up table to determine the physical port information for thedestination device of the packet. The gateway device then translates thedata packet using a device driver and sends the data packet to thephysical port corresponding to the destination device. If the look-uptable contains no entry corresponding to the destination device, thegateway device sends the data packet to all devices on the network.

[0012] Other advantages and features of the invention will be apparentfrom the drawings and detailed descriptions as set forth below.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]FIG. 1 is a block diagram of one embodiment of an electronicnetwork;

[0014]FIG. 2 is a block diagram of one embodiment of the private networkand the gateway device of FIG. 1;

[0015]FIG. 3 is a block diagram of one embodiment of the gateway deviceof FIG. 2;

[0016]FIG. 4 is a block diagram of one embodiment of the random accessmemory of FIG. 3;

[0017]FIG. 5 is a block diagram of another embodiment of the randomaccess memory of FIG. 3;

[0018]FIG. 6 is a flowchart of method steps for bridging data packetsbetween devices on a private network, according to one embodiment;

[0019]FIG. 7 is a flowchart of method steps for routing data packetsbetween a device on a private network and a public network, according toone embodiment; and

[0020]FIG. 8 is a flowchart of method steps for routing data packetsbetween a device on a private network and a public network, according toanother embodiment.

DETAILED DESCRIPTION OF THE DRAWINGS

[0021]FIG. 1 is a block diagram of one embodiment of an electronicnetwork. A home 110 is connected via a broadband link 140 to a publicnetwork 120 that communicates with a broadband access concentrator 130.Home 110 includes a private network 112 that communicates via a gatewaydevice 114 and broadband link 140 with public network 120.

[0022] Broadband link 140 may be implemented as a digital subscriberline (DSL) link, a digital cable link, or any other type of broadbandcommunication link. Private network 112 and gateway device 114 arefurther discussed below.

[0023]FIG. 2 is a block diagram of one embodiment of the private network112 and the gateway device 114 of FIG. 1. As illustrated, the privatenetwork 112 comprises a bridged network having several physicalnetworks, including a Home Phoneline Networking Alliance (HPNA orHomePNA) physical network 212, an Ethernet physical network 214, aUniversal Serial Bus (USB) device physical network 216, a wirelessphysical network 218, and a USB host physical network 220. Personalcomputers (PC) 230 and 232 are connected to HPNA network 212 andcommunicate with gateway device 114 using an HPNA protocol. Personalcomputers (PC) 234, 236, and 238 are connected to Ethernet network 214and communicate with gateway device 114 using an Ethernet protocol. PC242 is connected to USB network 216 and communicates with gateway device114 using a USB protocol. Although PCs are shown in FIG. 2, anynetworking device may be used in private network 112, including AppleMacintosh® computers, which may employ the AppleTalk protocol, printers,scanners, telephony equipment, and the like.

[0024] Wireless devices 240 communicate with gateway device 114 viawireless network 218 using any appropriate wireless communicationprotocol, such as HomeRF or 802.11b. Other network devices 222 may beconnected to USB host network 220. For example, a USB-to-powerlinenetworking device may be connected to gateway device 114 via USB hostnetwork 220.

[0025] Gateway device 114 allows each PC or other device in privatenetwork 112 to communicate with any other device on the bridged privatenetwork 112. Gateway device 114 creates a virtual one-wire privatenetwork where each device appears to be connected to every other device,even though devices may be connected to different ports of gatewaydevice 114 and may use different protocols.

[0026] Gateway device 114 achieves this virtual one-wire network bytranslating the protocol of each packet it receives into the protocolused by the receiving device. For example, if PC 230 sends a packet toPC 238, gateway device 114 receives an HPNA packet from PC 230,translates that packet into an Ethernet packet, and then sends theEthernet packet to PC 238. This translation process is invisible to PCs230 and 238. Gateway device 114 transmits a packet to the destinationdevice over the physical network to which the destination device isconnected and in the protocol of that physical network.

[0027]FIG. 3 is a block diagram of one embodiment of the gateway deviceof FIG. 2. Gateway device 114 includes, but is not limited to, an HPNAphysical layer (PHY) 312, an Ethernet PHY 314, a USB host PHY 315, a USBDevice PHY 316, a wireless PHY 317, a broadband PHY 318, networkcontrollers 320, a random access memory (RAM) 330, and a centralprocessing unit (CPU) 340. Each of the PHYs 312-318 further comprises aport or a logical extension thereof.

[0028] Network controllers 320 include an HPNA Media Access Control(MAC) 322, an Ethernet MAC 324, a USB Host MAC 325, a USB Device MAC326, a wireless MAC 327, and a broadband MAC 328. The various MACs maybe embodied in one or more integrated circuit packages. Each MAC ofnetwork controllers 320 communicates with RAM 330 using a direct memoryaccess (DMA) transfer. Software modules stored in RAM 330, inconjunction with CPU 340, control the transfer of packets among thevarious ports of gateway device 114.

[0029] Each packet received by gateway device 114 is translated firstinto an Ethernet packet, except for packets received on Ethernet port214. A network device driver (not shown) for each port is configured toconvert the native packet type into an Ethernet packet, and convert anEthernet packet into the native packet type. Techniques for thisconversion are not discussed here as they are known in the art.

[0030]FIG. 4 is a block diagram of one embodiment of the random accessmemory of FIG. 3. The FIG. 4 embodiment of RAM 330(a) includes, but isnot limited to, a MAC table 412, a bridging module 414, and an IProuting module 416. When gateway device 114 initially starts up, MACtable 412 is empty. When one of the devices in private network 112 sendsa packet, gateway device 114 receives that packet and bridging module414 creates an entry in MAC table 412. The table entry includes the MACaddress for the device and the logical port of gateway device 114 thatreceived the packet. For example, if PC 230 sends a packet, bridgingmodule 414 will create an entry in MAC table 412 that includes the MACaddress of PC 230 and a number associated with and identifying the port,or logical extension thereof, through which the gateway 114 received thepacket, in this case the HomePNA port 312. Each network device has aunique MAC address.

[0031] The contents of MAC table 412 are dynamic. Any device that isadded to private network 112 will be added to MAC table 412 as soon asthe network device transmits a packet received by gateway 114 via one ofthe ports 312-317 (FIG. 3). Also, if no packet is received from a devicefor a predetermined time, then the entry in MAC table 412 for thatdevice will be deleted.

[0032] Bridging module 414 uses the contents of MAC table 412 to sendeach packet to the correct destination. Bridging module 414 finds theMAC address of the destination device specified in a transmitted packet,and looks up that MAC address in MAC table 412 to determine the port ofthe destination device. Bridging module 414 then sends the transmittedpacket to the appropriate device driver (not shown) for conversion intothe appropriate format. If there is no entry in MAC table 412 for thedestination device, bridging module 414 sends the Ethernet packet to allof the ports of gateway device 114. Thus, transmitted packets do notalways have to be broadcast to all network devices; rather, they can besent to only the physical network to which the destination device isconnected.

[0033] IP routing module 416 controls the routing of packets between theprivate network 112 and the public network 120. Packets traveling acrossthe public network are typically routed using Internet Protocol (IP).Packets received by gateway device 114 are converted to Ethernet packetsand those with an ethertype of IP are forwarded to the broadband devicedriver (not shown). The broadband device driver converts the Ethernetpacket into the type of packet utilized by broadband link 140.

[0034]FIG. 5 is a block diagram of another embodiment of the randomaccess memory of FIG. 3. RAM 330(b) includes, but is not limited to, MACtable 412, private network bridging module 414, IP routing module 416, aPoint-to-Point Protocol over Ethernet (PPPoE) MAC table 512, and a PPPoEmodule 516.

[0035] The FIG. 5 embodiment of RAM 330(b) supports PPPoE connectionsbetween a device in private network 112 and broadband accessconcentrator 130 (FIG. 1). A PPPoE connection typically requires apublic, or routable, IP address and allows for activities such as securetelecommuting. However, Internet service providers typically onlyprovide one IP address to home 110. PPPoE MAC table 512 and PPPoE module516 allows a device on private network 112 to use a public IP addressand bypass the IP translation of gateway device 114. Thus, one device onprivate network 112 may use one public IP address for a PPPoE connectionwithout restricting other devices on private network 112 from accessingthe Internet using another public IP address.

[0036] A conventional PPPoE software package may be installed on one ormore PCs in private network 112. For example, a PPPoE software packagemay be installed on PC 230. During a PPPoE session, PC 230 sends HPNApackets to gateway device 114. Gateway device 114 converts the HPNApackets to Ethernet packets as described above. PPPoE module 516recognizes the ethertype of these packets as PPPoE and, in response,bridges such packets. PPPoE packets typically have an Ethertype (byte12, 13) of Ox8863 and Ox8864. PPPoE module 516 creates an entry in PPPoEMAC table 512 that includes the MAC address of PC 230 and the port type.The Ethernet packets are then sent to the broadband port driver forconversion into broadband-type packets.

[0037] When gateway device 114 receives PPPoE session packets frombroadband link 140, the broadband port driver converts the incomingpackets into Ethernet packets. PPPoE module 516 identifies the ethertypeas PPPoE and looks up the port type of the destination device in PPPOEMAC table 512. PPPoE module then sends the Ethernet package to theappropriate port driver for conversion. PPPoE packets destined for PC230 will be sent to the HPNA port driver, converted into HPNA packets,and then sent over HPNA port 212 to PC 230.

[0038]FIG. 6 is a flowchart of example method steps for bridging datapackets between devices on a private network, according to oneembodiment. In FIG. 6, PC 230 is sending a packet to PC 242. In step612, PC 230 sends an HPNA packet that, in step 614, is received bygateway device 114. In step 616, the network device driver for HPNA port212 converts the HPNA packet into an Ethernet packet. In step 618,bridging module 214 identifies the port associated with of thedestination device specified in the Ethernet packet using MAC table 212.In the FIG. 6 embodiment, the destination device is PC 242 and its portis the USB device PHY 316.

[0039] Next, in step 620, bridging module 214 forwards the Ethernetpacket to the network device driver for the destination port. In step622, the network device driver converts the Ethernet packet into itsport type, in this case USB. Then, in step 624, the converted packet issent to the destination over the appropriate port, or in this case theport 316, to the associated physical network 216 to the PC 242.

[0040]FIG. 7 is a flowchart of method steps for routing data packetsbetween a device on a private network and a public network, according toone embodiment. In the FIG. 7 embodiment, PC 242 is sending a packet topublic network 120 via broadband link 140. In step 712, PC 242 sends apacket on USB device physical network 216. In step 714, gateway device114 receives the USB packet. Then, in step 716, the network devicedriver for USB port 316 converts the USB packet into an Ethernet packet.In step 717, gateway device 114 identifies the port of the destinationdevice using MAC table 412; here the destination device is broadbandaccess concentrator 130.

[0041] In step 718, IP routing module 416 recognizes the ethertype ofthe received packet as IP. Next, in step 720, routing module 416forwards the Ethernet packet to the network device driver for broadbandlink 140. In step 722, the network device driver for broadband link 140converts the Ethernet packet into the broadband port type. Then, in step724, the broadband packet is sent to public network 120 via broadbandlink 140.

[0042]FIG. 8 is a flowchart of method steps for forwarding, or bridging,data packets between a device on a private network and a public network,according to another embodiment. In the FIG. 8 embodiment, PC 230 iscommunicating with broadband access concentrator 130 using a PPPoEsession. First, in step 812, PC 230 sends an HPNA packet. In step 814,gateway device 114 receives the HPNA packet from HPNA port 212. Next, instep 816, the HPNA network port driver converts the HPNA packet into anEthernet packet. In step 817, gateway device 114 identifies the port ofthe destination device using MAC table 412; here the destination deviceis broadband access concentrator 130.

[0043] In step 818, PPPoE module 516 recognizes the ethertype of thereceived packet as PPPoE. The Ethernet packet thus does not undergo anIP routing process and is forwarded to the broadband network port driverin step 820. In step 822, the broadband network port driver converts thereceived packet into the destination port type, which may be ADSL. Then,in step 824, the converted packet is sent over broadband link 140 tobroadband access concentrator 130.

[0044] The invention has been explained above with reference to specificembodiments. It will, however, be evident that various modifications andchanges may be made thereto without departing from the broader spiritand scope of the invention as set forth in the appended claims. Theforegoing description and drawings are, accordingly, to be regarded inan illustrative rather than a restrictive sense.

What is claimed is:
 1. A system for selectively bridging and routingdata packets between a plurality of devices coupled to multiple physicalnetworks, comprising: a gateway device coupling the multiple physicalnetworks, the gateway device comprising: a physical port for coupling toeach of the multiple physical networks; a network device driver for eachphysical port configured to convert data packets back and forth betweenan Ethernet protocol and a network protocol of each physical port; abridging module for routing each data packet to the appropriate networkdevice driver based on each data packet's intended destination; and alook-up module for use by the bridging module to store device addressesand physical port information.
 2. The system of claim 1, wherein one ofthe physical networks is a public network.
 3. The system of claim 2,wherein the physical port for coupling to the public network is abroadband network connection.
 4. The system of claim 2, wherein thegateway device further comprises an Internet Protocol (IP) module foridentifying and routing IP data packets between the public network andthe other networks.
 5. The system of claim 3, wherein the gateway devicefurther comprises an Internet Protocol (IP) module for identifying androuting IP data packets between the public network and the othernetworks.
 6. The system of claim 1, wherein the look-up module comprisesa dynamically allocable table including entries comprising a MediaAccess Control (MAC) address and an identifier of a correspondingphysical port of each device.
 7. The system of claim 1, wherein thelook-up module comprises a dynamically allocable table including entriescomprising a Media Access Control (MAC) address and an identifier of acorresponding logical extension of a physical port of each device. 8.The system of claim 6, wherein the dynamically allocable table furtherincludes entries comprising a Media Access Control (MAC) address and anidentifier of a corresponding logical extension of a physical port foreach device.
 9. A method for selectively bridging and routing datapackets between a plurality of devices coupled to multiple physicalnetworks, comprising the steps of: receiving a data packet from a sourcedevice; identifying a network protocol of the source device; translatingthe data packet from the network protocol of the source device to anEthernet protocol; identifying a destination device of the data packet;identifying a network protocol of the destination device; translatingthe data packet from the Ethernet protocol to the network protocol ofthe destination device; and sending the data packet to the destinationdevice.
 10. The method of claim 9, wherein the step of identifying thenetwork protocol of the destination device includes referring to alook-up table that includes a device address and physical portinformation for each device.
 11. The method of claim 10, furthercomprising the step of creating an entry in the look-up table each timea device first sends a data packet over one of the multiple physicalnetworks.
 12. The method of claim 10, further comprising the step ofdeleting an entry in the look-up table if the device corresponding tothe entry does not send a data packet over one of the multiple physicalnetworks for a predetermined length of time.
 13. The method of claim 10,further comprising the step of sending the data packet to all devicescoupled to the multiple physical networks if the look-up table does notcontain an entry for the destination device of the data packet.
 14. Themethod of claim 11, further comprising the step of deleting the entry inthe look-up table if the device corresponding to the entry does not senda data packet over one of the multiple physical networks for apredetermined length of time.
 15. The method of claim 11, furthercomprising the step of sending the data packet to all devices coupled tothe multiple physical networks if the look-up table does not contain theentry for the destination device of the data packet.
 16. The method ofclaim 12, further comprising the step of sending the data packet to alldevices coupled to the multiple physical networks if the look-up tabledoes not contain the entry for the destination device of the datapacket.
 17. The method of claim 14, further comprising the step ofsending the data packet to all devices coupled to the multiple physicalnetworks if the look-up table does not contain the entry for thedestination device of the data packet.
 18. A system for selectivelybridging and routing data packets using Point-to-Point Protocol overEthernet (PPPoE) between a device on a private network and a publicnetwork without restricting other devices on the private network fromaccessing the public network using another Internet Protocol (IP)address, comprising: a gateway device coupling the private network andthe public network, the gateway device comprising: a physical port forcoupling to the private network; a physical port for coupling to thepublic network; a network device driver for each physical portconfigured to convert data packets back and forth between an Ethernetprotocol and a network protocol of the private network; a network devicedriver for each physical port configured to convert data packets backand forth between an Ethernet protocol and a network protocol of thepublic network; a bridging module for routing each data packet to theappropriate network device driver based on each dat a packet's intendeddestination; a look-up module for use by the bridging module to storedevice addresses and physical port information; a PPPoE module foridentifying and routing PPPoE data packets between the private networkand the public network; and a look-up module for use by the PPPoE moduleto store device addresses and physical port information.
 19. The systemof claim 18, wherein the physical port for coupling to the publicnetwork is a broadband network connection.
 20. The system of claim 18,wherein the gateway device further comprises an Internet Protocol (IP)module for identifying and routing IP data packets between the publicnetwork and the private network.
 21. The system of claim 19, wherein thegateway device further comprises an Internet Protocol (IP) module foridentifying and routing IP data packets between the public network andthe private network.
 22. The system of claim 18, wherein the look-upmodule for use by the bridging module further comprises a dynamicallyallocable table including entries comprising a Media Access Control(MAC) address and an identifier of a corresponding physical port of eachdevice.
 23. The system of claim 18, wherein the look-up module for useby the bridging module further comprises a dynamically allocable tableincluding entries comprising a Media Access Control (MAC) address and anidentifier of a corresponding logical extension of a physical port ofeach device.
 24. The system of claim 22, wherein the dynamicallyallocable table further includes entries comprising a Media AccessControl (MAC) address and an identifier of a corresponding logicalextension of a physical port for each device.
 25. The system of claim18, wherein the look-up module for use by the PPPoE module furthercomprises a dynamically allocable table including entries comprising aMedia Access Control (MAC) address and an identifier of a correspondingphysical port of each device.
 26. The system of claim 18, wherein thelook-up module for use by the PPPoE module further comprises adynamically allocable table including entries comprising a Media AccessControl (MAC) address and an identifier of a corresponding logicalextension of a physical port of each device.
 27. The system of claim 25,wherein the dynamically allocable table further includes entriescomprising a Media Access Control (MAC) address and an identifier of acorresponding logical extension of a physical port for each device. 28.A method of selectively bridging and routing data packets usingPoint-to-Point Protocol over Ethernet (PPPoE) between a device on aprivate network and a public network without restricting other deviceson the private network from accessing the public network using anotherInternet Protocol (IP) address, comprising: receiving a data packet froma source device; identifying a network protocol of the source device;translating the data packet from the network protocol of the sourcedevice to an Ethernet protocol; identifying an ethertype of the datapacket as PPPoE; identifying a destination device for the data packet;identifying a network protocol of the destination device; translatingthe data packet from an Ethernet protocol to the network protocol of thedestination device; and sending the data packet to the destinationdevice.
 29. The method of claim 28, wherein the step of identifying thenetwork protocol of the destination device includes referring to alook-up table including a device address and physical port informationfor each device.
 30. The method of claim 29, further comprising the stepof creating an entry in the look-up table each time a device first sendsa data packet over the private network.
 31. The method of claim 29,further comprising the step of deleting an entry in the look-up table ifthe device corresponding to the entry does not send a data packet overthe private network for a predetermined length of time.
 32. The methodof claim 29, further comprising the step of sending the data packet toall devices coupled to the private network and the public network if thelook-up table does not contain an entry for the destination device ofthe data packet.
 33. The method of claim 30, further comprising the stepof deleting the entry in the look-up table if the device correspondingto the entry does not send a data packet over the private network for apredetermined length of time.
 34. The method of claim 30, furthercomprising the step of sending the data packet to all devices coupled tothe private network and the public network if the look-up table does notcontain the entry for the destination device of the data packet.
 35. Themethod of claim 31, further comprising the step of sending the datapacket to all devices coupled to the private network and the publicnetwork if the look-up table does not contain the entry for thedestination device of the data packet.
 36. The method of claim 33,further comprising the step of sending the data packet to all devicescoupled to the private network and the public network if the look-uptable does not contain the entry for the destination device of the datapacket.